# coding=utf-8

from . import base
from .component import Component

## 实现一个组件，需要写如下几个方法：
class VenusHotStandby(Component):

    ## 依赖的组件，返回类型为 string 数组，例如 return ["docker"]，表示该组件依赖的其他组件
    def dependencies(self):
        if base.is_windows():
            return []
        else:
            return []



    ## 检测安装状态，返回true或者false，用于显示是否已经安装该组件
    def check(self):
        return base.is_service_running("venusHotStandby")



    ## 检测运行状态，返回true或者false，表示该组件是否正在运行
    def status(self):
        return base.is_service_running("venusHotStandby")




    ## 安装 组件需要运行的命令行
    def install(self, rVersion : str = None):
        print("install venusHotStandby")
        EN_PATH = base.get_env("EN_PATH")
        print(f"en path = {EN_PATH}")
        base.cmd_in_dir(f"{EN_PATH}/linux/gonsin/venusHotStandby", "./install.sh")
        return True


    ## 更新
    def update(self, rVersion : str = None):
        self.uninstall()
        self.install()


    ## 卸载
    def uninstall(self, removeDependencies : bool = None):
        EN_PATH = base.get_env("EN_PATH")
        base.cmd_in_dir(f"{EN_PATH}/linux/gonsin/venusHotStandby", "./uninstall.sh")


from . import component_manager as cm
cm.ALL_COMPONENTS['venusHotStandby'] = VenusHotStandby()